package org.rascalmpl.eclipse.views.values.text;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.rascalmpl.eclipse.views.values.ValueEditorInput;
import io.usethesource.vallang.IValue;
public class Editor {
public static void edit(final IValue v, boolean indent, int tabsize) {
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
final IEditorInput input = new ValueEditorInput(v, indent, tabsize);
if (win == null && wb.getWorkbenchWindowCount() != 0) {
win = wb.getWorkbenchWindows()[0];
}
if (win != null) {
final IWorkbenchPage page = win.getActivePage();
if (page != null) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
try {
page.openEditor(input, "org.eclipse.ui.DefaultTextEditor");
} catch (PartInitException e) {
// TODO: log exception somewhere
}
}
});
}
}
}
}